package com.yc.thread;

/**
 * @program: concurrent
 * @description: 中断线程及检测线程中断
 * @author: zy
 * @create: 2022-01-10 10:43
 */
public class Test6_Interrupt {
    public static void main(String[] args) {


        // 通过interrupted()方法检测线程是否被中断。
        //  Thread.currentThread()  主线程
        System.out.println(Thread.currentThread().getName() + "线程是否中断：" + Thread.interrupted());

        // 设置  main 线程   中断信号。
        Thread.currentThread().interrupt();

        //main线程
       // Thread.currentThread().stop();   //不能用 stop()中止线程.  很黄很暴力..


        // 通过interrupted()方法检测线程是否被中断。  interrupted()也可以检测中断状态，同时还可以清除中断状态
        System.out.println(Thread.currentThread().getName() + "线程是否中断：" + Thread.interrupted());  //返回true后，恢复状态
        // 检测interrupted()是否会清除线程状态。
        System.out.println(Thread.currentThread().getName() + "线程是否中断：" + Thread.interrupted());


        //对比:  isInterrupted()    isInterrupted()检测此线程是否中断，但不会清除中断状态
        // 检测当前线程是否被中断。
      //  System.out.println(Thread.currentThread().getName() + "线程是否中断：" + Thread.currentThread().isInterrupted());   //true
        // 检测线程中断状态是否被清除。
       // System.out.println(Thread.currentThread().getName() + "线程是否中断：" + Thread.currentThread().isInterrupted());   //true
    }
}
